The invention generally relates to data networks and in particular to a method for directing the route of a cell transiting a network.
In computer networks, data cells are generally routed using one of two methods. The first method involves the insertion of a xe2x80x9cdestination addressxe2x80x9d in the cell. Each switch or device within the network contains a forwarding database (also known as a routing table). This forwarding database contains an entry for each known destination address along with information related to how the cell is to be routed. The forwarding database usually lists an output port corresponding to each known destination address. This method requires that the forwarding database be configured before cells can transit the network. This configuration may be accomplished by a central configuration device or by various algorithms that permit each of the devices, with the cooperation of adjoining devices, to learn routes throughout the network.
The second method is explicit routing. In this method, the entire route that a cell is to transverse is explicitly stated within the cell. Each switch or device forwards the cell based on the information within the cell. Consequently, the devices within the network are not required to maintain forwarding databases.
A major limitation of destination address routing is the requirement of each device within the network to contain a configured-forwarding database before data communication can take place. To achieve this, complex algorithms are required that allow each device to learn the topology of the network and to make appropriate forwarding database entries. Alternatively, a central device can configure the network; however, this is complicated by the fact that methods must be provided for the central device to learn the topology of the network without the network functioning. A second limitation is additional network complexity (redundancy) to provide network fault tolerance. Many networks are configured with multiple paths between points on the network. In this way, if a link fails, cells may be routed along alternate paths maintaining communication in the presence of the fault. With destination address routing, complex algorithms must be provided to detect such faults, and to determine alternate routes around the faults. The time required to perform these functions, referred to as network convergence time, may be unacceptably long for certain applications.
Explicit routing eliminates the need to configure devices within a network to enable communication. However, explicit routing requires significantly increased processing by the communicating devices. This is due to the fact that an originating device must maintain information regarding the entire route between itself and the final destination. Furthermore, network efficiency is reduced since the entire route must be carried along with the cell. And finally, network performance may be reduced since the intervening devices must examine more data within the cell before a forwarding decision can be made.
Therefore, a need exists for a more flexible technique for routing cells through a network which provides the advantages of both the destination address routing and explicit routing techniques.
According to an embodiment of the present invention, a method of routing a cell along a directed route is provided. A cell is received, and includes a first address and a final destination address. The cell is explicitly routed if the first address is a predetermined global address or the address of the device. The cell is destination address routed if the first address is not equal to the predetermined global address or the address of the device.